#include<iostream>
using namespace std;
#include<list>
/*
功能描述：
    给list容器进行赋值，以及交换list容器
函数原型：
    assign(beg,end);    将[beg,end)区间中的数据拷贝赋值给本身
    assign(n,elem);     将n个elem拷贝赋值给本身
    list& operator=(const list &lst);   重载等号操作符
    swap(lst);      将lst与本身的元素互换
*/
void printList(const list<int> &L)
{
    for(list<int>::const_iterator it=L.begin();it!=L.end();it++)
    {
        cout<<*it<<" ";
    }
    cout<<endl;
}
void test01()
{
    list<int> l1;
    l1.push_back(10);
    l1.push_back(20);
    l1.push_back(30);
    l1.push_back(40);
    printList(l1);
    
    list<int> l2;
    l2=l1;//operator=赋值
    printList(l2);

    list<int> l3;
    l3.assign(l2.begin(),l2.end());
    printList(l3);

    list<int> l4;
    l4.assign(10,100);
    printList(l4);
}
//交换
void test02()
{
    list<int> l1;
    l1.push_back(10);
    l1.push_back(20);
    l1.push_back(30);
    l1.push_back(40);
    printList(l1);

    list<int> l2;
    l2.assign(10,100);
    printList(l2);

    cout<<"交换后"<<endl;
    l1.swap(l2);
    printList(l1);
    printList(l2);
}
int main()
{
    test01();
    test02();
}